Cooperative telephony systems provide users thereof with the ability to communicate with one another over a restricted access network. Non-limiting examples include private branch exchanges installed in different offices of commercial, industrial and governmental enterprises. In such systems, a calling party needs only to dial a limited digit identification code or extension (e.g., three or four digits) in order to be connected with a called physical resource (phone) in the same or another office. Because members of such networks may move among various (branch) locations, it is customary practice to employ a unified dialing plan or table containing information regarding each physical resource, including its location. This serves to equip each node of the network with the ability to locate a particular extension when routing a call.
Unfortunately a unified dialing plan has a number of drawbacks, particularly where resource node membership can be expected to change. Since each node has a copy of the plan, any change to a node must be replicated at every other node or made to a master. Changes in the dialing plan may also lead to out-of-date routing information, resulting in mis-routed calls, which leads to user frustration while the information is being updated. Number portability is another problem that conventional implementations have not addressed. When moving an extension between nodes, system support has been cumbersome, since changes must be propagated to routing tables in other nodes. Moreover, having multiple copies of routing information creates a greater chance for errors. It has been found that moving an extension from one node to another is likely to cause routing problems, since each node has invalid data until its location information is updated.